package com.czk;

import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;

import java.util.concurrent.TimeUnit;

/**
 * @Author:ChenZhangKun
 * @Date: 2022/12/27 20:47
 */
public class EventLoopGroupDemo {
    public static void main(String[] args) {
        // 创建线程组
        EventLoopGroup group = new NioEventLoopGroup(2);

        System.out.println(group.next());
        System.out.println(group.next());

        // 执行普通任务
        group.next().execute(() -> {
            System.out.println(Thread.currentThread().getName());
        });

        // 执行定时任务

        group.next().schedule(() -> {
            System.out.println("czk===");
        }, 5, TimeUnit.SECONDS);
        // 优雅关闭 shutdownGracefully 方法。该方法会首先切换 EventLoopGroup 到关闭状态从而拒绝新的任务的加入，
        // 然后在任务队列的任务都处理完成后，停止线程的运行。从而确保整体应用是在正常有序的状态下退出
        group.shutdownGracefully();
    }
}
